The Structure Definition Language ... tbs.
1 – Parameters
file-spec[,...] Specifies the names of one or more files to be processed. You must specify at least one file name. If you specify two or more file names, separate them with commas.
2 – Command Qualifiers
2.1 /ALIGNMENT
/ALIGNMENT=value The assumed alignment. Integer value greater than zero. If specified, diagnostic messages are emitted for data items that do not fall on the assumed alignment.
2.2 /ALPHA_AXP
/ALPHA_AXP (Default on Alpha and IA64 systems)
There are many things that depend on this qualifier:
o The size of certain data types (HARDWARE_ADDRESS, INTEGER_HW,
HARDWARE_INTEGER, POINTER_HW) is 8 bytes if /ALPHA_AXP is specified
and 4 bytes otherwise.
o Bitfields can have 64 bits if /ALPHA_AXP is specified and only 32 bits
otherwise.
o BASIC defines the data type HUGE as BASIC$HFLOAT_AXP if /ALPHA_AXP is
specified and as HFLOAT otherwise and HUGE_COMPLEX as
BASIC$H_FLOATING_COMPLEX_AXP if /ALPHA_AXP is specified and as
BASIC$H_FLOATING_COMPLEX otherwise.
o CC writes alignment pragmas to the output file only if /ALPHA_AXP is
specified.
o CC generates 64-bit pointers only if /ALPHA_AXP is specified.
o CC generates QUADWORD datatypes as __int64 if /ALPHA_AXP is specified
and as int[2] otherwise.
o Also see /C_DEVELOPMENT and /VMS_DEVELOPMENT.
2.3 /B64
/B64[=value] /NOB64[=value] (D) This qualifier is only valid for the languages BLISS and BLISSF. The default extension for the output file is .R64 if /B64 is specified and .R32 otherwise. The word size used in BITFIELDs is 64 bits if /B64 is specified and 32 bits otherwise. The name used for conditional compilation changes from BLISS or BLISSF to BLISS64 or BLISSF64, respectively. The value will be ignored. You cannot specify the qualifiers /B64 and /VAX together.
2.4 /CHECK_ALIGNMENT
/CHECK_ALIGNMENT[=value] /NOCHECK_ALIGNMENT[=value] (D) If specified, diagnostic messages are emitted for data items that do not fall on their natural alignment. The value will be ignored.
2.5 /COMMENTS
/COMMENTS[=value] (D) /NOCOMMENTS[=value] Defines whether comments in the source file will be written to the output file. The value will be ignored.
2.6 /COPYRIGHT
/COPYRIGHT[=value] /NOCOPYRIGHT[=value] Defines whether a Compaq copyright notice is written to the output file. The value will be ignored.
2.7 /C_DEVELOPMENT
/C_DEVELOPMENT[=value] /NOC_DEVELOPMENT[=value] Only used by the CC backend. If an input file contains more than one module, C generates one .h file per module if either /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified and one file containing all the modules otherwise. C defines a macro with all lowercase characters to equal the same name in all uppercase characters for every entry node if either /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified. C creates function prototypes if either /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified (although the ones generated with /VMS_DEVELOPMENT only contain "__unknown_params"). C generates most definitions twice if /C_DEVELOPMENT is specified, separated with "#ifdef __NEW_STARLET" ... "else" ... "endif". The "__NEW_STARLET" definitions contain complete function prototypes, the "OLD" definitions only "__unknown_params". Also the definitions of structs and unions are different. The __member_alignment pragmas are only generated if both /ALPHA_AXP and /C_DEVELOPMENT are specified. C generates "if !defined(__VAXC)" for special cases if /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified, otherwise "ifdef __cplusplus" is generated. C generates "#ifndef __<module-name>_LOADED" ... if /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified. C generated "__required_pointer_size" pragmas if either /VMS_DEVELOPMENT or both /V_DEVELOPMENT and /ALPHA_AXP are specified. Together with the /ALPHA_AXP qualifier and the /VMS_DEVELOPMENT qualifier this qualifier influences the definition of certain data types and the generation of certain pragmas, e.g. the data type QUADWORD is defined as __int64 if /ALPHA_AXP is specified and /VMS_DEVELOPMENT and not /C_DEVELOPMENT, and as int [2] otherwise, and the HARDWARE_ADDRESS and POINTER_HW data types are defined as __int64 if /ALPHA_AXP and neither /C_DEVELOPMENT nor /VMS_DEVELOPMENT are specified and as int[2] if /ALPHA_AXP is not specified, and are not defined if /ALPHA_AXP and one of the qualifiers /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified. Pretty confusing, isn't it? The value [of the qualifier] will be ignored.
2.8 /DUMP
/DUMP[=file-spec] /NODUMP[=file-spec] Generates a dump of the intermediary representation. file-spec is the name of the dump file.
2.9 /GLOBAL_DEFINITION
/GLOBAL_DEFINITION[=value] /NOGLOBAL_DEFINITION[=value] The BASIC language does not support this option. BLISS and BLISSF define common and global items as "global" if /GLOBAL_DEFINITION is specified and as "external" otherwise. CC defines global items as "extern" if /GLOBAL_DEFINITION is not specified. MACRO defines global items depending on the presence of /VMS_DEVELOPMENT and /GLOBAL_DEFINITION Pascal define global items as "[GLOBAL]" if /GLOBAL_DEFINITION is specified and as "[EXTERNAL]" otherwise. PLI define global items as "globaldef" if /GLOBAL_DEFINITION is specified and as "globalref" otherwise. The value will be ignored.
2.10 /HEADER
/HEADER (D) /NOHEADER Defines whether the SDL header is written to the output file. The SDL header contains the creation date and time of the output file (i.e. the date and time when SDL was run) and the name and the creation date of the source file used to generate the output file.
2.11 /LANGUAGES
/LANGUAGES=(keyword[=filespec][,...])
Specifies the names of the languages for which you want to generate
output. filespec optionally lets you specify [part of] a file
specification. If you provide only one file specification, you can
omit the parentheses.
You can specify one of the following languages:
ADA The Ada programming language.
BASIC The BASIC programming language.
BLISS The BLISS programming language.
BLISS64 Same as BLISS with the additional qualifier /B64.
BLISSF A "fields" variant of the BLISS programming language.
CC The C and C++ programming languages.
DCL The Digital Command Language.
DTR The Datatrieve programming language.
DUMP Dumps the input in a special format.
FORTRAN The FORTRAN programming language.
FORTRAN_STEVE_LIONEL The FORTRAN programming language.
This is close to "FORTRAN" with
the exception that ... tbs.
FORTV3 An older dialect of the FORTRAN programming language.
MACRO The VAX Macro assembler, also available on Alpha and IA64.
PASCAL The Pascal programming language.
PLI The PL1 programming language.
SDML The Standard Digital Markup Language.
TPU The Text Processing Utility language.
TPU_2 The Text Processing Utility language.
This is a different implementation which
should produce the same result as "TPU"
UIL The DECwindows User Interface Language.
This is a different implementation which
should produce the same result as "UIL"
2.12 /LIST
/LIST[=file-spec] /NOLIST[=file-spec] Generates a listing file. file-spec is the name of the listing file.
2.13 /MEMBER_ALIGN
/MEMBER_ALIGN[=value] /NOMEMBER_ALIGN[=value] Specifies that every item in aggregates should be aligned. This is the same as specifying ALIGN on all aggregates. The value will be ignored.
2.14 /MODULE
/MODULE (D) /NOMODULE ADA outputs the module header and predeclared types if /MODULE is specified. PASCAL generates "%include"-able files if /NOMODULE is specified. Otherwise, the generated files are MODULEs, which can be [INHERIT]ed.
2.15 /PARSE
/PARSE[=file-spec] (D) /NOPARSE /PARSE generates an intermediate file. file-spec is the name of the file. If /NOPARSE is specified, SDL assumes that the input file-spec (parameter 1) is an intermediate file. You cannot specify the qualifiers /NOPARSE and /SUPPRESS together.
2.16 /PLI_DEVELOPMENT
/PLI_DEVELOPMENT[=value] /NOPLI_DEVELOPMENT[=value] Only used by the PLI backend. This qualifier specifies the definition of certain data types, e.g. most integral data types are defined as fixed binary (n) if /PLI_DEVELOPMENT is specified and as bit(n) aligend otherwise. In addition to that, the type names of certain parameters are changed, e.g. "ASTADR" to "entry value" and "MASK_BYTE" to "bit (8) aligned". Default parameters that are not optional are marked as "optional" if /PLI_DEVELOPMENT is specified The value will be ignored.
2.17 /SUBFIELDS
/SUBFIELDS[=value] /NOSUBFIELDS[=value] tbs - -> sdl$v_subfield_opt. The value will be ignored.
2.18 /SUPPRESS
/SUPPRESS=(option[,...]) /NOSUPPRESS=(option[,...]) /SUPPRESS=PREFIXES /SUPPRESS=TAGS With this qualifier, you can specify that items should be generated without prefixes and/or tags. You can specify one of the following options: PREFIXES specify that items should be generated without prefixes. TAGS specify that items should be generated without tags. If you provide only one value, you can omit the parentheses. You cannot specify the qualifiers /NOPARSE and /SUPPRESS together.
2.19 /SYMBOLS
/SYMBOLS=(value[,...]) It is possible to specify symbols and values which can be used in the IFSYMBOL statement (kind of conditional compilation). If you provide only one value, you can omit the parentheses.
2.20 /VAX
/VAX (Default on VAX systems) For modules, FORTRAN writes the following comment to the output file: !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN CC generates "double" as return type for functions if the actual return type is quadword and /VAX and not /VMS_DEVELOPMENT is specified. You cannot specify the qualifiers /ALPHA_AXP and /VAX together. You cannot specify the qualifiers /B64 and /VAX together.
2.21 /VMS_DEVELOPMENT
/VMS_DEVELOPMENT[=value]
/NOVMS_DEVELOPMENT[=value]
o Ada defines the data types QUADWORD and INTEGER_QUAD as INTEGER_64
if /ALPHA_AXP and /VMS_DEVELOPMENT is specified and as
UNSIGEND_QUADWORD otherwise.
o BLISS defines routines as "external routine routine-name : novalue"
if /VMS_DEVELOPMENT is not specified and generates macros or keywordmacros
otherwise.
o BLISS' and BLISSF's generation of certain "literal"s for the sizes of
structures or unions depends on this qualifier.
o BLISSF ignores user fill fields if /VMS_DEVELOPMENT is specified.
o BLISSF ignores nested structures if /VMS_DEVELOPMENT is specified.
o BLISSF generates macros instead of fields for certain level one items.
o CC handles user fill depending on /VMS_DEVELOPMENT.
o CC handles references to aggregates within typedef'd aggregates
different when /VMS_DEVELOPMENT is specified.
o See also /C_DEVELOPMENT
o Pascal prefixes "read node" modules with PASCAL$ if /VMS_DEVELOPMENT
is specified.
o Pascal suppresses the generation of certain fill fields if
/VMS_DEVELOPMENT is specified.
o Pascal appends "$TYPE" to data types that have no "$" in their name
if /VMS_DEVELOPMENT is specified.
o Pascal emits an error message if it encounters a complex data type
if /VMS_DEVELOPMENT is not specified.
o Pascal generates the type "$DEFPTR" for user data types if
/VMS_DEVELOPMENT is specified and generates the actual type if not.
The value will be ignored.